home *** CD-ROM | disk | FTP | other *** search
/ Amiga Collections: Franz PD / Franz PD Disk #288 (1993)(Rhein-Sieg-Soft).zip / Franz PD Disk #288 (1993)(Rhein-Sieg-Soft).adf / Knobeln / LEITUNGEN.LST < prev    next >
File List  |  1992-06-01  |  8KB  |  246 lines

  1. ' *******************************
  2. ' *       Leitungen V1.00       *
  3. ' *    © 1992 by henry König    *
  4. ' * Bornheide 71, 2 hamburg 53  *
  5. ' *******************************
  6. init                            ! Bildschirm und Fenster öffnen
  7. farben.setzen                   ! Farben setzen
  8. menueein                        ! Menüs einschalten
  9. info                            ! Startinfo
  10. programmkopf
  11. PRINT AT(24,31);"Bitte wählen Sie einen Menüpunkt!"
  12. ON MENU GOSUB menÜkontrolle
  13. REPEAT
  14.   SLEEP
  15. UNTIL ende!
  16. CLOSEW #1                       ! Fenster schließen
  17. CLOSES 1                        ! Bildschirm schließen
  18. END                             ! system
  19. PROCEDURE auflÖsung             !
  20.   programmkopf
  21.   kraftwerke                    ! Kraftwerke zeichnen
  22.   haeuser                       ! Häuser zeichnen
  23.   PCOLOR 5,0
  24.   PRINT AT(24,15);"Ich weiß leider auch keine Lösung!"
  25.   tastendruck
  26. RETURN
  27. PROCEDURE beenden               ! Programm beenden
  28.   ALERT 0,"Wollen Sie aufhören",1,"Ende|Weiter",wahl%
  29.   ende!=(wahl%=1)
  30. RETURN
  31. PROCEDURE daten                 ! Daten für Menüs und Anweisungen
  32.   menue.daten:
  33.   DATA "Projekt "
  34.   DATA "+I Info                 "
  35.   DATA " Spiel starten "
  36.   DATA " Auflösung "
  37.   DATA "+Q Programm beenden "
  38.   DATA ""
  39.   DATA "*"
  40. RETURN
  41. PROCEDURE haeuser               ! Häuser zeichnen
  42.   a%=80
  43.   aa%=60
  44.   b%=100
  45.   dd%=160
  46.   d%=140
  47.   c%=300
  48.   cc%=280
  49.   e%=320
  50.   ee%=520
  51.   f%=500
  52.   ff%=540
  53.   ddd%=176
  54.   COLOR 2                       ! schwarz für die Dächer
  55.   DRAW "MA",a%,d%               ! Giebel vom 1. Haus
  56.   DRAW "DA",aa%,dd%
  57.   DRAW "DA",b%,dd%
  58.   DRAW "DA",a%,d%
  59.   DRAW "MA",c%,d%               ! Giebel vom 2. Haus
  60.   DRAW "DA",cc%,dd%
  61.   DRAW "DA",e%,dd%
  62.   DRAW "DA",c%,d%               ! Giebel vom 3. Haus
  63.   DRAW "MA",ee%,d%
  64.   DRAW "DA",f%,dd%
  65.   DRAW "DA",ff%,dd%
  66.   DRAW "DA",ee%,d%
  67.   COLOR 1                       ! weiß für die Häuserboxen
  68.   PBOX aa%,dd%,130,ddd%
  69.   PBOX cc%,dd%,350,ddd%
  70.   PBOX f%,dd%,570,ddd%
  71. RETURN
  72. PROCEDURE info
  73.   programmkopf
  74.   startbild
  75.   PCOLOR 3,0
  76.   PRINT AT(10,31);"© 1992 by henry König, Bornheide 71, 2000 Hamburg 53"
  77.   PCOLOR 1,0
  78.   PRINT AT(2,25);"Dieses Programm darf kopiert werden und in jede PD-Serie übernommen werden."
  79.   tastendruck
  80. RETURN
  81. PROCEDURE kraftwerke            ! Kraftwerke zeichnen
  82.   COLOR 5
  83.   PBOX 60,57,70,80              ! Schornstein
  84.   PBOX 70,70,120,80
  85.   COLOR 4
  86.   PBOX 280,57,290,80            ! Schornstein
  87.   PBOX 290,70,340,80
  88.   COLOR 3
  89.   PBOX 500,57,510,80            ! Schornstein
  90.   PBOX 510,70,560,80
  91. RETURN
  92. PROCEDURE mauss                 ! Punkte an Mausposition zeichnen
  93.   CLR neu%                      ! Einstiegswert für die Schleife
  94.   COLOR 5
  95.   WHILE neu%=0
  96.     mausk%=MOUSEK               ! Mausknopf
  97.     x=MOUSEX                    ! Rechtswert der Maus
  98.     y=MOUSEY                    ! Hochwert der Maus
  99.     IF mausk% THEN              ! Mausknopf gedrückt?
  100.       PLOT x,y                  ! ja, dann Punkt (Linie) zeichnen
  101.     ENDIF
  102.     IF INT(y/8)>27 AND mausk% THEN
  103.       neu%=1                    ! Neu-Schalter zum Abbruch setzen
  104.     ENDIF
  105.   WEND
  106.   COLOR 1,0                     ! weiß auf grauen Grund
  107.   PCOLOR 1,0                    ! weiße Schrift auf grauen Grund
  108. RETURN
  109. PROCEDURE menÜkontrolle         ! Hauptmenü
  110.   mn%=MENU(0)                   ! Menüpunkt
  111.   SELECT mn%
  112.   CASE 1
  113.     info                        ! Info ausgeben
  114.   CASE 2
  115.     CLR neu%
  116.     programmkopf
  117.     startbild                   ! Startbild zeichnen
  118.     tastendruck                 ! auf Tastendruck warten
  119.     zeichnen                    ! Zeichenfeld zeichen und Zeichnen
  120.   CASE 3
  121.     auflÖsung
  122.   CASE 4
  123.     beenden                     ! Programm beenden
  124.   ENDSELECT
  125.   programmkopf
  126.   PRINT AT(24,31);"Bitte wählen Sie einen Menüpunkt!"
  127. RETURN
  128. PROCEDURE menueein              ! Menüs einschalten
  129.   MENU KILL
  130.   RESTORE menue.daten
  131.   FOR menue%=0 TO 10
  132.     READ x$
  133.     EXIT IF x$="*"
  134.     menue$(menue%)=x$
  135.   NEXT menue%
  136.   DEC menue%                    !
  137.   menue$(menue%+6)=""
  138.   menue$(menue%+7)=""
  139.   MENU menue$()
  140. RETURN
  141. PROCEDURE programmkopf
  142.   CLS
  143.   COLOR 2                       ! schwarze Box
  144.   PBOX 1,1,639,20
  145.   COLOR 0                       ! grau
  146.   PBOX 6,4,633,17
  147.   COLOR 4                       ! hellgrau
  148.   LINE 6,4,633,4
  149.   LINE 6,4,6,17
  150.   PCOLOR 5,0
  151.   PRINT AT(20,2);"V e r s o r g u n g s l e i t u n g e n  V 1.00"
  152.   PCOLOR 1,0
  153.   programmfuss
  154. RETURN
  155. PROCEDURE programmfuss          ! Anweisungsboxen zeichnen
  156.   COLOR 2                       ! schwarz
  157.   PBOX 1,(27*8)-10,639,(32*8)   ! schwarze Box
  158.   COLOR 0                       ! grau
  159.   PBOX 6,(27*8)-7,633,(28*8)+4  ! graue Box
  160.   PBOX 6,(29*8)+2,633,(32*8)-4  ! 2. graue Box
  161.   COLOR 4                       ! hellgrau
  162.   BOX 7,(27*8)-7,633,(32*8)-3
  163.   LINE 7,(29*8)+2,633,(29*8)+2
  164.   LINE 16,(29*8)-6,639-16,(29*8)-6
  165.   LINE 16,(29*8)+5,639-16,(29*8)+5
  166.   LINE 639-16,(29*8)-6,639-16,(26*8)+4  ! senkrechter Strich
  167.   LINE 16,(29*8)+5,16,(31*8)+2  ! senkrechter Strich
  168.   COLOR 2                       ! schwarz
  169.   LINE 7,(32*8)-3,633,(32*8)-3  ! schwarze Linie
  170.   LINE 633,(27*8)-7,633,(32*8)-3
  171.   LINE 16,(27*8)-4,639-16,(27*8)-4
  172.   LINE 16,(31*8)+2,639-16,(31*8)+2
  173.   LINE 16,(29*8)-6,16,(26*8)+4  ! senkrechter Strich
  174.   LINE 639-16,(29*8)+5,639-16,(31*8)+2    ! senkrechter Strich
  175. RETURN
  176. PROCEDURE startbild             ! Startbild zeichnen
  177.   PCOLOR 1,0                    ! weiß
  178.   PRINT AT(4,4);"Hier sehen hier die Kraftwerke";
  179.   PCOLOR 5,0                    ! gelb
  180.   PRINT " Strom,";
  181.   PCOLOR 4,0
  182.   PRINT " Wasser,";
  183.   PCOLOR 3,0                    ! rot
  184.   PRINT " Gas";
  185.   PCOLOR 1,0
  186.   PRINT " und drei Häuser."
  187.   PRINT AT(4,5);"Alle Häuser müssen von den Kraftwerken versorgt werden."
  188.   PRINT AT(4,6);"Versuchen Sie die Versorgungsleitungen mit der linken Maustaste zu legen."
  189.   PRINT AT(4,7);"Nur ein Haken ist dabei, die Leitungen dürfen sich nicht kreuzen."
  190.   kraftwerke                    ! Kraftwerke zeichnen
  191.   haeuser                       ! Häuser zeichnen
  192. RETURN
  193. PROCEDURE taste                 ! ein Zeichen von der Tastatur holen
  194.   CLR x%                        ! Steuerzeichen löschen
  195.   CLR mausk%
  196.   CLR mausx%                    ! Mausspalte löschen
  197.   CLR mausy%                    ! Mauszeile löschen
  198.   WHILE x%=0 AND MOUSEK=0
  199.     x$=INKEY$                   ! Zeichen von Tastatur
  200.     x%=ASC(x$)                  ! ASCII-Wert für Auswertung
  201.   WEND
  202.   IF MOUSEK<>0 THEN             ! linke Maustaste
  203.     mausx%=MOUSEX               ! ja, dann Spalte = mausx
  204.     mausy%=MOUSEY               ! Zeile = mausy
  205.     mausk%=MOUSEK               ! Maustaste
  206.   ENDIF
  207. RETURN
  208. PROCEDURE tastendruck
  209.   PRINT AT(24,28);SPACE$(34);
  210.   PCOLOR 5,0
  211.   PRINT AT(24,28);" Weiter mit Taste oder Mausklick."
  212.   taste
  213.   PCOLOR 1,0
  214.   PRINT AT(24,28);SPACE$(32)
  215. RETURN
  216. PROCEDURE zeichnen              ! Zeichenfeld zeichnen
  217.   programmkopf
  218.   kraftwerke                    ! Kraftwerke zeichnen
  219.   haeuser                       ! Häuser zeichnen
  220.   PRINT AT(2,2);"   Immer vom Kraftwerk zeichnen und die linke Maustaste gedrückt halten."
  221.   PRINT AT(22,28);"Leitungen dürfen sich  n i c h t  kreuzen!"
  222.   PCOLOR 5,0
  223.   PRINT AT(24,31);"Abbruch mit Mausklick in diese Zeile."
  224.   mauss                         ! zur Zeichenroutine
  225. RETURN
  226. PROCEDURE init                  ! Bildschirm und Fenster öffnen
  227.   DIM menue$(20)
  228.   breite%=640                   ! Screenbreite
  229.   hoehe%=256                    ! Screenhöhe
  230.   ebenen%=3                     ! 3 Bitplanes
  231.   OPENS 1,0,0,breite%,hoehe%,ebenen%,&H8000
  232.   OPENW #1,0,0,breite%,hoehe%,&H18,&H1800,1
  233.   farben.setzen                 ! Farbpalette setzen
  234. RETURN
  235. PROCEDURE farben.setzen         ! Farbpalette setzen
  236.   SETCOLOR 0,5,5,5              ! grau statt blau
  237.   SETCOLOR 1,15,15,15           ! weiß bleibt
  238.   SETCOLOR 2,0,0,0              ! schwarz erhalten
  239.   SETCOLOR 3,15,5,0             ! rot bleibt
  240.   SETCOLOR 4,10,10,10           ! hellgrau inverse Farbe im Filerequester
  241.   SETCOLOR 5,15,15,0            ! gelb
  242.   SETCOLOR 6,0,0,0              ! schwarz = Inverse Farbe im Filerequester
  243. RETURN
  244. REM                             ! damit der Interpreter beim Kopieren nicht
  245. REM                             ! abstürzt
  246.